import hashlib

class MD5Util:
    @staticmethod
    def encrypt_string(input_string):
        """
        使用MD5算法加密给定的字符串。

        :param input_string: 需要加密的字符串
        :return: 加密后的十六进制字符串
        """
        if not isinstance(input_string, str):
            raise TypeError("Input must be a string")

        # 创建MD5哈希对象
        md5_hash = hashlib.md5()

        # 对输入字符串进行编码
        input_bytes = input_string.encode('utf-8')

        # 更新哈希对象
        md5_hash.update(input_bytes)

        # 获取加密后的十六进制字符串
        encrypted_string = md5_hash.hexdigest()

        return encrypted_string

# 使用示例
if __name__ == "__main__":
    test_string = "Hello, world!"
    encrypted = MD5Util.encrypt_string(test_string)
    print(f"Original: {test_string}")
    print(f"Encrypted: {encrypted}")